"""
传递性说明：子类拥有父类以及父类的父类中封装的所有属性和方法
需求：
1. 定义动物类Animal， 动物有姓名name和年龄age属性， 具有吃eat和睡sleep的行为
2. 定义猫类Cat， 猫类具有动物类的所有属性和方法， 并且具有抓catch老鼠的特殊行为
3. 定义狗类Dog， 狗类具有动物类的所有属性和方法， 并且具有看门look_door的特殊行为
4. 定义哮天犬类XiaoTianDog， 哮天犬类具有狗类的所有属性和方法， 并且具有飞fly的特殊行为
"""

class Animal:
    """动物类"""
    def __init__(self, name='动物', age=2):
        self.name = name
        self.age = age

    def eat(self):
        print('干饭')

    def sleep(self):
        print('睡觉')

class Cat(Animal):
    """猫类：继承与动物类"""
    def catch(self):
        print('抓老师')

class Dog(Animal):
    """狗类，继承于动物类"""
    def look_door(self):
        print('看门')

class XiaoTianDog(Dog):
    def fly(self):
        print('飞天')


# 猫类对象
c = Cat('mike', 35)
print(c.name)
print(c.age)
c.catch()
c.sleep()

# 小舔狗对象
xtg = XiaoTianDog('大黄', 3)
print(xtg.name)
print(xtg.age)
xtg.fly()
xtg.look_door()
xtg.eat()